Current solid state drives (SSDs) have a boot-up time on the order of seconds meaning the drive is ready to service input/output (IO) requests seconds after being powered on. The boot-up time for an SSD may be characterized by the sum of: (i) hardware power-up boot-up time; (ii) a ROM boot-up time; (iii) a boot loader boot-up time; and (iv) a firmware initialization time. The longest time of the above may be spent in the firmware initialization phase. Firmware initialization requires more time because it needs to read in a logical-to-physical (L2P) indirection table, which may typically be on the order of hundreds of megabytes. Apart from the L2P table, the firmware may also need to restore certain other data that describes the NAND and firmware states. This state data may be collectively referred to as the ‘context’.
The firmware may save the context to non-volatile memory on a clean shutdown and may read the context back on power-up. The L2P table forms the overwhelming chunk of the context. The size of the rest of the context is on the order of hundreds of kilobytes which is significantly less than the hundreds of megabytes for the L2P table. Therefore, the L2P table load time dominantly comprises the power-on boot-up time for the SSD.
Current SSDs also consume tens of milliwatts of power (typically 100 mW) when idle since both the SSD controller and the dynamic random access memory (DRAM) inside the SSD must remain powered on to maintain the SSD state. Accordingly, there may be a need for improved techniques to solve these and other problems.